package com.project.handler;

import com.project.exception.ForbiddenException;
import com.project.exception.UnauthorizedException;
import com.project.result.Result;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {

//    // 处理 401：未认证
//    @ExceptionHandler(UnauthorizedException.class)
//    public ResponseEntity<Result<Void>> handleUnauthorized(UnauthorizedException e) {
//        Result<Void> result = Result.error(e.getMessage());
//        return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(result);
//    }
//
//    // 处理 403：权限不足
//    @ExceptionHandler(ForbiddenException.class)
//    public ResponseEntity<Result<Void>> handleForbidden(ForbiddenException e) {
//        Result<Void> result = Result.error( e.getMessage());
//        return ResponseEntity.status(HttpStatus.FORBIDDEN).body(result);
//    }
//
//    // 兜底：其他运行时异常
//    @ExceptionHandler(Exception.class)
//    public ResponseEntity<Result<Void>> handleUnexpected(Exception e) {
//        // 生产环境不要暴露具体异常信息
//        Result<Void> result = Result.error("我成功了");
//        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result);
//    }
}